Web and mobile application companies often rely on third party services to add functionality to their products. These third party services generally require implementation of software code in the form of a software developer kit (SDK), an application programming interface (API), a software library, or other software code. While these third party services can dramatically enhance a user's enjoyment of a web or mobile application, and generate significant value to the company implementing them (i.e. advertising revenue, improved user functionality, enhanced customer support), the burden of installing the third party code falls upon the web and mobile application companies themselves. It can take multiple hours or even days for company personnel (typically an in-house developer) to correctly perform the manual implementation of a single third party SDK. An in-house developer must First identify the appropriate third party service he wants to use from a myriad of choices (e.g., from dozens of competing mobile ad networks), read the associated support manual that provides the installation instructions for using the unfamiliar third party SDK, and then install the SDK directly into the web or mobile application source code. This process is administratively burdensome and requires tedious quality assurance and testing procedures to ensure the installation process was done correctly and has not unintentionally impaired the web or mobile application. For example, a web or mobile company that wants to generate revenue through online advertising, and does not have the resources or time to build its own ad network system, will have to install a third party ad network SDK into its web or mobile app. That SDK will run ads in the web or mobile application and provide advertising revenue to the company.
Third party service providers regularly update their SDKs. If a company wishes to make use of the latest features and functionality of the third party service, it must implement the upgraded SDK into its web or mobile application. This is not a simple and quick process. The web or mobile application must be worked on by skilled developers, potentially disrupting business operation. The old SDK must be removed and the upgraded SDK installed and tested by somebody with the required skills and experience. A successful company that has multiple third party SDKs may have to employ a team of in-house developers full time to manage this process. For this reason, many web and mobile application developers simply avoid using what would otherwise be desirable third party services. The burden of identifying the best third party services, managing the various first time SDK installations tracking when SDK updates are available and then re-performing the laborious installation and testing process can be overwhelming to a small business. In fact, a new term has been coined for managing the deluge of new and updated SDKs: ‘SDK fatigue’.
The costs associated with implementing a third party system can be prohibitively high for a developer, especially when considering the multitude of third party services that he will have to evaluate before choosing one that suits his needs. For example, a developer may need to test a dozen third party ad networks before finding one that works best for his specific application, such as a casual game or a social networking application. The SDK implementation and ongoing management process is so time consuming and difficult for many web and mobile application companies that they simply limit the use of these valuable third party services. The result is that these companies miss out on valuable incremental revenue opportunities and innovative new services that they could be offering to their customers.
Therefore, there is a need for a method of taking a compiled software application and modifying it without the developer needing to evaluate the best third party service most appropriate for his web or mobile application, and doing so without the burden of manually inserting third party software code (SDK, API) into the source code of his web or mobile application. There is also a need for a method that would allow a developer to effortlessly test multitudes of potentially valuable third party services without the challenges and business interruptions normally associated with manually implementing SDKs for each service, enabling web and mobile application companies to rapidly evaluate and implement numerous third party services in order to enhance their product and service functionality in areas such as advertising, analytics, user surveys, crash reporting, developer tools, libraries, app rating prompts, innovative promotional offerings, in app purchases, and modifying the application so that it can properly use hardware on a client device. Furthermore, there is a need for a method to allow existing functions performed by SDKs previously installed in the web or mobile application to be redirected to new or more optimal purposes. Furthermore, there is a need for a method that could perform these modifications in a variety of formats, operating systems, and programming languages, such as iOS, Android, HTML5, C and C+, and Flash.